package day12;

import java.math.BigDecimal;
import java.math.RoundingMode;

/*
* BigDecimal 基本使用
*
* */
public class Demo7 {
    public static void main(String[] args) {

        double d1 = 0.01;

        double d2 = 0.09;

        System.out.println(d1+d2);

        BigDecimal b1 = new BigDecimal("0.01");

        BigDecimal b2 = new BigDecimal("0.09");

        BigDecimal add = b1.add(b2);

        System.out.println(add);

        double d3 = 1.0;

        double d4 = 0.32;

        System.out.println(d3-d4);

        BigDecimal b3 = new BigDecimal("1.0");

        BigDecimal b4 = new BigDecimal("0.32");

        BigDecimal sub = b3.subtract(b4);

        System.out.println(sub);


        double d5 = 1.015;

        double d6 = 100;

        System.out.println(d5*d6);

        BigDecimal b5 = new BigDecimal("1.015");

        BigDecimal b6 = new BigDecimal("100");

        BigDecimal mul = b5.multiply(b6);

        System.out.println(mul);


        double d7 = 1.301;

        System.out.println(d7/d6);

        BigDecimal b7 = new BigDecimal("1.301");

        BigDecimal b8 = new BigDecimal("99");

        //对于浮点类型的除法运算，有可能会出现无限循环小数，因此需要对结果进行位数保留和指定舍入模式，
        // 否则计算过程额中会出现ArithmeticException 算数异常
        //参数2:舍入模式
        BigDecimal div = b7.divide(b8, RoundingMode.HALF_UP);
        //参数2:保留位数
        BigDecimal div2 = b7.divide(b8,2, RoundingMode.HALF_DOWN);

        System.out.println(div);
        System.out.println(div2);
    }
}
